package ndk;

/*
 *1.JNI层构建Java对象
 * */
public class JNICopy {

	public static void main(String[] args){
	
		String src[] = new String[10];
		for(int i = 0; i < 10; i++)
		{
			src[i] = "" + (10 - i);
		}

		for(int i = 0; i < 10; i++)
		{
			System.out.println("src = " + src[i]);
		}

		String dest[] = new String[10];
		// 通过native实现数组的拷贝
		try{
			arrayCopy(src,0,dest,0,10);
		} catch(Exception e){
			e.printStackTrace();
		}


		for(int i = 0; i < 10; i++)
		{
			System.out.println("dest = " + dest[i]);
		}


	}

	/*
	 * 定义jni函数- 拷贝的过程在native中实现
	 * */
	private static native void arrayCopy(Object src, int srcPos, Object dest, int destPos, int length);

	static{
		// 引入编译好的动态库
		// System.loadLibrary		加载apk中libs中的so库，或者是系统环境变量中的so库
		// System.load				加载指定路径中的so库
		System.load("/home/wukj/works/NDK-Grammar/src/ndk/grammar/libcopy.so");
	}

}


